package customerEnter.Frame.Error;

import java.util.HashMap;
import java.util.Map;

import customerEnter.Frame.Utils.Log4j;

/**
 * 錯誤處理類
 * 
 * 类名称：ErrorFram 类描述： 创建人：dy 创建时间：2016-6-11 上午8:54:21
 * 
 */
@SuppressWarnings({ "serial" })
public class FramErrorProcessing extends Exception {
	Map<String, String>	map	= new HashMap<String, String>();

	public FramErrorProcessing(Exception e) {
		Log4j.setLog4j(getClass());
		IfException(e, null);

	}

	public FramErrorProcessing(Exception e, String mess) {
		Log4j.setLog4j(getClass());
		IfException(e, mess);
	}

	public void IfException(Exception e, String mess) {
		Log4j.Log4JOutError(IfMapException(e.getClass().getName()) + " " + e.getMessage() + " " + mess);
	}

	public String IfMapException(String ClassName) {
		if (map.size() <= 0) {
			map.put(IllegalArgumentException.class.getName(), "异常表明向方法传递了一个不合法或不正确的参数：");
			map.put(IllegalAccessException.class.getName(), "由于java在反射时调用了private方法所导致：");
			map.put(SecurityException.class.getName(), "在调用方无权需要访问资源时,引发 SecurityException 异常：");
			map.put(NoSuchFieldException.class.getName(),
					"你的代码除了没有在方法中声明异常(throws)，或是在方法体中处理异常(try..catch),其他完全可以通过。请确定代码是否发出来的正确：");
			map.put(ClassNotFoundException.class.getName(), "无法找到指定的类：");
			map.put(InstantiationException.class.getName(), "Class調用newInstance() 失敗：");
		}
		return map.get(ClassName);
	}

}
